CO2 est le nom du module correspondant Ă la 2nd version du module Communecter (www.communecter.org). Le module CO2 fait parti du projet PixelHumain, au mĂȘme titre que d’autres modules dĂ©veloppĂ©s au sein de PixelHumain (qu’est qu’un module ?).
CO2 a lui mĂȘme Ă©tĂ© construit de façon Ă pouvoir intĂ©grer facilement de nouvelles applications, et les activer/dĂ©sactiver trĂšs facilement, via 1 seul fichier de configuration : [https://github.com/pixelhumain/co2/blob/master/config/CO2/params.json](https://github.com/pixelhumain/co2/blob/master/config/CO2/params.json
Les applications actuellement activées pour le site communecter.org sont : welcome, recherche, agenda, annonces, live, page, et info. Ce fichier sert à configurer un certain nombre de paramÚtres pour chaque application, ce qui permet de configurer trÚs rapidement une nouvelle app, sans toucher au code commun qui gÚre toutes les applications.
Cela permet aussi de mettre en place des instances diffĂ©rentes de communecter.org (exemple : autrerezo.org, makietjichel.com, ou autres…), sur lesquelles les administrateurs de l’instance peuvent activer et dĂ©sactiver les applications qu’ils souhaitent utiliser, sans avoir Ă supprimer ou modifier du code.
Les développeurs peuvent aussi créer de nouvelles applications à volonté.
Il convient bien Ă©videmment de remplacer "#nomdelapplication" par le nom de votre application, les titres ect … Pour l’icĂŽne, choisir un nom parmi cette liste : http://fontawesome.io/icons/
"#nomdelapplication": {
"inMenu" : true,
"useHeader" : true,
"open" : true,
"subdomain" : "nomdelapplication",
"subdomainName" : "Nomdelapplication",
"hash" : "#app.nomdelapplication",
"icon" : "nomDeLIconeFontawesome",
"mainTitle" : "Nom de l'application",
"placeholderMainSearch" : "Rechercher dans ..."
},
(il est conseillĂ© d’indiquer tous les paramĂštres, mais il est possible d’en enlever ou d’en rajouter selon vos besoins)
Ouvrir le fichier /modules/co2/controllers/AppController.php et rajouter par exemple :
public function actionNomdelapplication(){
CO2Stat::incNbLoad("co2-nomdelapplication");
echo $this->renderPartial("nomdelapplication", array(), true);
}
Dans /modules/co2/components/CommunecterController.php, il faut ajouter votre lien dans l’array "app" : (l’array app se situe environ Ă la ligne 460 du fichier)
"app" => array(
"nomdelapplication" => array('href' => "/ph/communecter/app/nomdelapplication", "public" => true),
),
Elle est appelĂ©e par le contrĂŽleur pour gĂ©rer l’affichage (code HTML, CSS, JS). CrĂ©er le fichier /modules/co2/views/app/nomdelapplication.php On peut inclure le code d’une autre vue en utilisant $this->renderPartial
Bravo ! Maintenant vous n’avez plus qu’Ă accĂ©der Ă votre application grĂące Ă l’url suivante :
http://127.0.0.1/ph/co2#nomdelapplication
Communecter permet dĂ©jĂ de gĂ©rer plusieurs Ă©lĂ©ments : citoyens, organisations, projets, Ă©vĂ©nement, news, point d’intĂ©rets, annonces, etc…) Voici la marche Ă suivre pour ajouter et gĂ©rer un nouvel Ă©lĂ©ment : (si vous crĂ©ez une nouvelle application, vous aurez probablement besoin de gĂ©rer un (ou plusieurs) nouveau(x) type(s) d’Ă©lĂ©ment(s))
CrĂ©er le dossier /modules/citizenToolKit/controllers/nomdelelement Ce dossier contiendra l’ensemble de la logique mĂ©tier. A l’intĂ©rieur de ce dossier, crĂ©er les actions dont vous avez besoin. IndexAction est l’action par dĂ©faut. Pour crĂ©er une action, crĂ©er un fichier comme "/modules/citizenToolKit/controllers/nomdelelement/IndexAction.php" qui contiendra par exemple :
<?php
class IndexAction extends CAction
{
public function run( $type=null, $id= null )
{
$controller=$this->getController();
$params = array();
$params["itemId"] = $id;
$params['itemType'] = $type;
if(Yii::app()->request->isAjaxRequest)
echo $controller->renderPartial("index", $params,true);
else
$controller->render( "index" , $params );
}
}
Et le fichier "/modules/citizenToolKit/controllers/nomdelelement/AutreAction.php"
class AutreAction extends CAction
{
public function run()
{
...
}
}
CrĂ©er les autres actions de la mĂȘme maniĂšre : "/modules/citizenToolKit/controllers/nomdelelement/searchAction.php" "/modules/citizenToolKit/controllers/nomdelelement/saveAction.php" etc
Créer le fichier /modules/citizenToolKit/models/nomdelelement.php
<?php
class Nomdelelement {
const COLLECTION = "nomdelelement";
const CONTROLLER = "nomdelelement";
const ICON = "fa-rss";
const COLOR = "#F9B21A";
public static function nomdelafonction() {
}
}
C’est lui qui sera appelĂ© en premier et qui redigirera vers le controller du module CitizenToolKit. CrĂ©er le fichier /modules/co2/controllers/NomdelelementController.php et le remplir comme dans l’exemple suivant :
<?php
/**
* NomdelelementController.php
*
* description
*
* @author: Prénom Nom <email@email.ext>
* Date: dd/mm/yyyy
*/
class NomdelelementController extends CommunecterController {
protected function beforeAction($action) {
parent::initPage();
return parent::beforeAction($action);
}
public function actions()
{
return array(
'index' => 'citizenToolKit.controllers.nomdelelement.IndexAction',
'autre' => 'citizenToolKit.controllers.nomdelelement.AutreAction'
);
}
}
L’array retournĂ© par la fonction actions() contient l’essemble des pages qui seront traitĂ©es par les classes prĂ©cĂ©demment créées dans le module CitizenToolKit.
Dans /modules/co2/components/CommunecterController.php, il faut crĂ©er les liens vers les actions (qui afficheront les sous pages) dans l’array $pages :
"nomdelelement" => array(
"index" => array("href" => "/ph/communecter/nomdelelement/index", "public" => true),
"autre" => array("href" => "/ph/communecter/nomdelelement/autre", "public" => true)
),
Elle est appelĂ©e par le contrĂŽleur pour gĂ©rer l’affichage (code HTML, CSS, JS). CrĂ©er le dossier /modules/co2/views/nomdelelement puis fichiers nommĂ©s en fonction du nom des actions :
http://127.0.0.1/co2/nomdelelement/index ou http://127.0.0.1/co2/nomdelelement/autre